home *** CD-ROM | disk | FTP | other *** search
/ MacHack 2000 / MacHack 2000.toast / pc / The Hacks / Softshoe / Lisa's Mac Parts / Macintosh Memory / HandleTo.h < prev    next >
Text File  |  2000-06-23  |  783b  |  37 lines

  1. // HandleTo.h
  2.  
  3. #ifndef HandleTo_h
  4. #define HandleTo_h
  5.  
  6. #ifndef MasterPointerTo_h
  7. #include "MasterPointerTo.h"
  8. #endif
  9.  
  10. template < class Target >
  11. class HandleTo
  12.   {
  13.     private:
  14.         MasterPointerTo< Target > *handle;
  15.  
  16.         // not implemented:
  17.             HandleTo( const HandleTo& );
  18.             void operator=( const HandleTo& );
  19.     
  20.     public:
  21.         HandleTo()
  22.           : handle( &MasterPointerTo<Target>::Make() )
  23.           {}
  24.         
  25.         ~HandleTo()                                                        { delete handle; }
  26.         
  27.         Target& operator*() const                                    { return **handle; }
  28.         Target *operator->() const                                    { return handle->operator->(); }
  29.         
  30.         operator Target**() const                                    { return handle->Handle(); }
  31.         
  32.         MasterPointerTo< Target >& MasterPointer()            { return *handle; }
  33.         MasterPointerTo< Target >& MasterPointer() const    { return *handle; }
  34.   };
  35.  
  36. #endif
  37.